#include <time.h> struct tm *localtime(time); long *time; указатель на хранимое время
Описание.
Функция localtime преобразовывает время, хранимое как long -значение, к структуре. Long -значение time представляет секунды, прошедшие от 00:00:00 значения времени по Гринвичу, т.е. с 1 января 1980 года. Это значение обычно получается из вызова функции time.
Функция localtime разрывает значение time , корректирует зону местного времени и переход на летнее/зимнее время, если он назначен, и запоминает откорректированное время в структуре типа tm .(Смотрите gmtime для описания полей структуры tm .)
В MS DOS даты раньше 1980 года не понимаются. Если time представляет дату перед 1 января 1980 года ,localtime возвращает символьную строку, представленную 00:00:00 January 1,1980.
Функция localtime делает изменения для зоны местного времени, если пользователь впервые установил переменную окружения TZ .
Значением TZ должна быть названная трехбуквенная временная зона, например PST , следующая за возможным знаковым числом, задающим различие между значением времени по Гринвичу и зоной местного времени. Число должно следовать за трехбуквенной зоной перехода на летнее/зимнее время (например PDT ). Функция localtime использует различия между значением времени по Гринвичу и местным временем для установки значения запомненного времени. Если в установке TZ присутствует зона перехода на летнее/зимнее время, localtime также изменяет переход на летнее/зимнее время. Если в TZ нет текущего значения, используется значение PST8PDT , устанавливаемое по умолчанию.
Когда TZ установлена, автоматически устанавливаются три другие переменные окружения - timezone, daylight, tzname . Смотрите функцию tzset для описания этих переменных.
Возвращаемое значение.
Функция localtime возвращает указатель на результат в структуре. Возвращаемого значения в случае ошибки нет.
Пример:
#include <stddio.h> #include <time.h> main() { struct tm *newtime; char *am_pm="PM"; time_t long_time; time(&long_time); newtime=localtime(&long_time); if(newtime->tm_hour<12) am_pm="AM"; if(newtime->tm_hour>12) newtime->tm_hour-=12; printf("%.19s %s\n", asctime(newtime), am_pm); }
На выходе:
Tue Dec 10 11:30:12 AM